Field of the Invention
The present invention relates to data synchronization and more particularly to time stamp based data synchronization.
Description of the Related Art
Data synchronization refers to the harmonization of a single, operable data set disposed in multiple locations. Data synchronization is most often associated with remote computing where a duplicate of a master data set is manipulated remotely from the remote data set. At an opportune moment, changes to the duplicate data set and changes to the master data set can be harmonized with one another by determining which items in the data set have changed and which have not changed. In the event where a data item has changed both in the duplicate and in the master data set, a conflicts policy can be applied to determine which data item is to be retained and which data item is to be overwritten.
Data synchronization methodologies range from static methodologies to dynamic methodologies. In a static, naive methodology, each data item in the data set can be compared to one another. Where a conflict is detected, a prevailing rule can be applied to determine which data item to retain and which to discard. Examples include server-modification-wins and client-modification-wins. In a dynamic methodology, changes to data items can be tracked in a log so that only items flagged in the log are synchronized, albeit through the use of a prevailing rule.
Advanced, server based data synchronization often uses time stamping concepts to resolve synchronization conflicts between modified data items in a data set. In the time stamp methodology, whenever a data item is added, deleted or changed, a time stamp indicating the time of the change can be associated with the data item. During synchronization, the time stamps between data items in a data set can be compared and the most recently time stamped data item is presumed to be the valid data item. The other data item can be discarded. As it will be recognized by the skilled artisan, however, the success of the time stamping methodology depends largely on the synchronization of the times of the computing platforms performing the data synchronization. Where one clock runs faster than the other, unintended results can occur.
Generally, synchronization the clocks of different computing platforms can be achieved in multiple ways. For instance, it is well known to refer to a third party source for a common time. Specifically, both computing platforms can obtain an accurate time by referencing a third party, trusted time provider such as a network accessible atomic clock. Other methodologies rely upon established network time exchange protocols, such as the Network Time Protocol or the Digital Time Service. Notwithstanding, referencing a common time across a widely distributed system can inhibit the scalability of the system. Moreover, in many cases a common time server may not be available because of corporate security policies or the administrative overhead of maintaining another server. Accordingly, it would desirable to perform data synchronization for a data processing system based upon time stamps without inhibiting the scalability of the data processing system.